var cm_partner = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : '单位名称',
	width : 180,
	dataIndex : 'name'
},{
	header : '单位拼音',
	width : 90,
	dataIndex : 'pinyin',
	sortable:true
	
}, {
	header : '联系人',
	width : 80,
	dataIndex : 'linkMam',
	sortable : false,
	menuDisabled : true
},{
	header : '联系电话',
	width : 90,
	dataIndex : 'linkTel',
	sortable : false
},{
	header : '地址',
	width : 190,
	dataIndex : 'address',
	sortable:true
	
}]);

var btn_add_partner = new Ext.Button({
	text : '添加单位',
	iconCls : 'icon-add',
	handler : function() {
		window_add_partner.show();
	}
});

var btn_edit_partner = new Ext.Button({
	text : '修改单位',
	iconCls : 'icon-edit',
	handler : function() {
		var record = grid_partner.getSelectionModel().getSelected();
		if (record) {
			window_edit_partner.show();
		}else{
			Ext.Msg.alert('提示','请选择要修改的单位!');
		}
	}
});

var btn_del_partner = new Ext.Button({
	text : '删除单位',
	iconCls : 'icon-del',
	handler : function() {
		var record = grid_partner.getSelectionModel().getSelected();
		if (record) {
			Ext.Msg.confirm('确认删除', '你确定删除该条记录?', function(btn) {
				if (btn == 'yes') {
					Ext.Ajax.request({
						url : '/partner/deleteDe.action',
						params : {tid : record.data.tid},
						success : function() {ds_partner.reload();},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '删除时发生错误,您可能不是管理员!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			});
		}
	}
});

var text_search_partner = new Ext.form.TextField({
	name : 'textSearchpartner',
	width : 200,
	emptyText : '根据单位名称模糊查询!',
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {
				searchpartner();
			}
		}
	}
});

var searchpartner = function() {
	ds_partner.baseParams.conditions = text_search_partner.getValue(); 
	ds_partner.load({params : {start : 0,limit : 20}});
}

var btn_search_partner = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchpartner
});

var ds_partner = new Ext.data.Store({
	url : app.url+'/admin/partner/getPartnerList.do',
	reader : new Ext.data.JsonReader({totalProperty : 'totalProperty',root : 'root'}, 
	[{name : 'id',type : 'int'}, 
	{name : 'name',type : 'string'}, 
	{name : 'pinyin',type : 'string'}, 
	{name : 'linkMam',type : 'string'}, 
	{name : 'linkTel',type : 'string'},
	{name : 'address',type : 'string'}
	])
});

var grid_partner = new Ext.grid.GridPanel({
	title : '单位管理',
	iconCls : 'icon-grid',
	loadMask : {msg : '数据加载中...'},
	width:600,
	region : 'center',
	cm : cm_partner,
	ds : ds_partner,
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}),
	enableColumnMove : false,
	trackMouseOver : false,
	frame : true,
	columnLines :true,
    enableHdMenu : false,
	tbar : [btn_add_partner,'-',btn_edit_partner , '-', btn_del_partner, '-',text_search_partner, btn_search_partner],
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_partner,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录",
		items:[{   
                text: '导出到Excel',   
                tooltip: 'Excel',   
                handler: partnerExport // 
                        }]
	})
});

function partnerExport(){
	doExport(grid_partner);
}

var window_add_partner = new Ext.Window({
	title : '添加单位',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('添加单位');
			this.findById('partner.name').ownerCt.form.reset();
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{
			fieldLabel : '单位名称',
			id : 'partner.name',
			name : 'partner.name',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {
			fieldLabel : '联系人',
			id : 'partner.linkMam',
			name : 'partner.linkMam',
			allowBlank : false,
			minLength : 2,
			maxLength : 10
		}, 
		{
		 	fieldLabel : '电话',
		 	name : 'partner.linkTel',
		 	allowBlank : false,
		 	maxLength : 15
		  },
		   {fieldLabel : '地址',
		   name : 'partner.address',
		   allowBlank : false,
		   maxLength : 40
		   }
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '添加',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('partner.name');
					frm.submit({
						waitTitle : '请稍候',
						url : app.url+'/admin/partner/save.do',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							window_add_partner.hide();
							ds_partner.load({params : {start : 0,limit : 20}});
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '重置',handler : function() {this.ownerCt.ownerCt.form.reset();}
		}, {text : '取消',handler : function() {this.ownerCt.ownerCt.ownerCt.hide();
			ds_partner.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var window_edit_partner = new Ext.Window({
	title : '修改单位',
	width : 320,
	resizable : false,
	autoHeight : true,
	modal : true,
	closeAction : 'hide',
	listeners : {
		'hide' : function() {
			this.setTitle('修改单位');
			this.findById('partnerd.name').ownerCt.form.reset();
		},
		'show' : function(){
			var record = grid_partner.getSelectionModel().getSelected();
			this.findById('partnerd.name').setValue(record.data.name);
			this.findById('partnerd.linkMam').setValue(record.data.linkMam);
			this.findById('partnerd.linkTel').setValue(record.data.linkTel);
			this.findById('partnerd.address').setValue(record.data.address);
			this.findById('partnerd.id').setValue(record.data.id);
		}
	},
	items : [new Ext.FormPanel({
		border : false,
		baseCls : 'x-plain',
		bodyStyle : 'padding:5px 5px 0',
		labelAlign : 'right',
		labelWidth : 70,
		defaults : {anchor : '93%',msgTarget : 'side'},
		defaultType : 'textfield',
		items : [{xtype : 'hidden',id:'partnerd.id',name : 'partner.id'},{
			fieldLabel : '单位名称',
			id : 'partnerd.name',
			name : 'partner.name',
			allowBlank : false,
			minLength : 2,
			maxLength : 30
		}, {
			fieldLabel : '联系人',
			id : 'partnerd.linkMam',
			name : 'partner.linkMam',
			allowBlank : false,
			minLength : 2,
			maxLength : 10
		}, 
		{
		 	fieldLabel : '电话',
		 	id : 'partnerd.linkTel',
		 	name : 'partner.linkTel',
		 	allowBlank : false,
		 	maxLength : 15
		  },
		   {fieldLabel : '地址',
		   id : 'partnerd.address',
		   name : 'partner.address',
		   allowBlank : false,
		   maxLength : 40
		   }
		],
		buttonAlign : 'right',
		minButtonWidth : 60,
		buttons : [{
			text : '保存',
			handler : function(btn) {
				var frm = this.ownerCt.ownerCt.form;
				if (frm.isValid()) {
					btn.disable();
					var unfield = frm.findField('partnerd.name');
					frm.submit({
						waitTitle : '请稍候',
						url : app.url+'/admin/partner/update.do',
						waitMsg : '正在提交表单数据,请稍候...',
						success : function(form, action) {
							window_edit_partner.hide();
							ds_partner.load({params : {start : 0,limit : 20}});
							btn.enable();
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '"' + unfield.getValue() + '" ' + '名称可能已经存在!',
								buttons : Ext.Msg.OK,
								fn : function() {
									unfield.focus(true);
									btn.enable();
								},
								icon : Ext.Msg.ERROR
							});
						}
					});
				}
			}
		}, {text : '保存',handler : function() {this.ownerCt.ownerCt.ownerCt.hide();
			ds_partner.load({params : {start : 0,limit : 20}});
		}
		}]
	})]
});

var p_partner = {
	id : 'partner-panel',
	border : false,
	layout : 'border',
	items : [grid_partner]
};
